package com.springcloud.configclient.consumer.remote;

import com.springcloud.configclient.consumer.fallback.HelloRemoteFallBack;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;

/**
 * @ClassName HelloRemote
 * @Description
 * Feign是一个声明式Web Service客户端。使用Feign能让编写Web Service客户端更加简单,
 * 它的使用方法是定义一个接口，然后在上面添加注解，同时也支持JAX-RS标准的注解。
 * Feign也支持可拔插式的编码器和解码器。Spring Cloud对Feign进行了封装，
 * 使其支持了Spring MVC标准注解和HttpMessageConverters。Feign可以与Eureka和Ribbon组合使用以支持负载均衡。
 * name：远程服务名，及spring.application.name配置的名称
 * 此类中的方法和远程服务中contoller中的方法名和参数需保持一致(RequestMapping一致)
 * @Author xuan
 * @Date 2020/12/3 11:08
 * @Version 1.0
 */
//@FeignClient(name = "spring-cloud-producer")

/**
 * 在HelloRemote类添加指定fallback类，在服务熔断的时候返回fallback类中的内容。
 */
@FeignClient(name = "spring-cloud-producer", fallback = HelloRemoteFallBack.class)
public interface HelloRemote {

    @RequestMapping(value = "/hello")
    String hello(@RequestParam(value = "name") String name);


    @RequestMapping(value = "/hi/happy")
    String test(@RequestParam(value = "msg") String msg) ;
}
